Legend:
I - Increment (amount to increment data)
M - Mask
N - Count
O - Offset (increment amount for address)
X - Address
Y - Data
/ - Ignored; should be replaced with 0 for clarity in most cases
(access type) - Access type used by implementing instructions

~~~~~
Write codes
~~~~~

80XXXXXX //////YY - Writes [data] to [address] (byte)
81XXXXXX ////YYYY - "" (halfword)
82XXXXXX YYYYYYYY - "" (word)
83XXXXXX YYYYYYYY - Data at [Address] is set to the contents of [address] OR [data] (word)
84XXXXXX YYYYYYYY - Data at [Address] is set to the contents of [address] AND [data] (word)
85XXXXXX NNNNNNNN - Writes the following ([count] * 8) bytes to [address] (dword)
86XXXXXX YYYYYYYY - Serial repeater; first line of two (second will be skipped if not followed by line two)
	Writes [data] to [count] addresses with [offset] incrementing the address each time (signed)
	[Address] is being written to with [data] incremented by [increment] each time [data] is written (signed)
	See code type 9 for info on the format of [count] and [increment]
	(Access type is determined by [mask]; [mask] & 3 == 0: byte, == 1: halfword, == 2: word, == 3: byte)
9//MNNNN OOOOIIII - Serial repeater; second line of two (will be skipped by code handler and processed inline with codes of the type that begin serial repeaters)
87XXXXXX //////// - Writes a J instruction at [address] that will jump to the next line of code for execution
	Skip following lines until after "Terminator code" is encountered*

* Only 1 terminator code is searched for

~~~~~
Condition codes
~~~~~

D0XXXXXX //////YY - "Do if equal" - Skip following lines until after "Terminator code" is encountered* if [data] is not equal to contents at address (byte)
D1XXXXXX ////YYYY - "" (halfword)
D2XXXXXX YYYYYYYY - "" (word)
D3XXXXXX MMMMYYYY - "Do if equal" - Skip following lines until after "Terminator code" is encountered* if [data] is not equal to contents at [address] AND [mask] (halfword)
D4XXXXXX //////YY - "Do if not equal" - Skip following lines until after "Terminator code" is encountered* if [data] is equal to contents at address (byte)
D5XXXXXX ////YYYY - "" (halfword)
D6XXXXXX YYYYYYYY - "" (word)
D7XXXXXX MMMMYYYY - "Do if not equal" - Skip following lines until after "Terminator code" is encountered* if [data] is equal to contents at [address] AND [mask] (halfword)
D8XXXXXX //////YY - "Do if less" - Skip following lines until after "Terminator code" is encountered* if [data] is greater than or equal to the contents at address (byte)
D9XXXXXX ////YYYY - "" (halfword)
DAXXXXXX YYYYYYYY - "" (word)
DB////// //////// - Not implemented
DCXXXXXX //////YY - "Do if more" - Skip following lines until after "Terminator code" is encountered* if [data] is less than or equal to the contents at address (byte)
DDXXXXXX ////YYYY - "" (halfword)
DEXXXXXX YYYYYYYY - "" (word)
DF////// //////// - Not implemented
E0000000 //////// - Terminator code

* Number of terminator codes that must be encountered starts at 1 and increases each time another conditional code is encountered in between

~~~~~
Special codes
~~~~~

C/////// //////// - Stores V0 and RA, sets RA to return to code handler and jumps to the next 8 byte aligned code for execution;
	Restores V0 and RA when called code returns with JR RA
	Advances interpreter pointer until after "Terminator code" is encountered*
	Recommended appearance: C0DE0000 00000000
FFFFFFFF //////// - Code handler terminator; when this is reached, the code handler returns execution to the game
	This interrupts searches for JR RA opcodes and conditional terminators in addition to searches for codes
	Recommended appearance: FFFFFFFF FFFFFFFF

* Only 1 terminator code is searched for
